package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Calendar;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Vistas.VUmpire;
import Modelo.Umpire;
import Principal.Liga;


public class CUmpire implements ActionListener {
	
	// vista y modelo que manejara el controlador
		private VUmpire vista ;
		
		
		
		
		// constructor de la clase
		public CUmpire(VUmpire vista) {
			super();
			this.vista = vista;
			
		}
		
		@Override
		public void actionPerformed(ActionEvent ae) {
			
			if (ae.getActionCommand().equalsIgnoreCase("Limpiar")){
				limpiar();
				
			}
			if (ae.getActionCommand().equalsIgnoreCase("Salir")){
				vista.dispose();
				
			}
			if (ae.getActionCommand().equalsIgnoreCase("Registrar")){
				
				int anno = Integer.parseInt(vista.cmbano.getValue().toString());
				int mes = Integer.parseInt(vista.cmbmes.getValue().toString());
				int dia= Integer.parseInt(vista.cmbdia.getValue().toString());
				String cedula = vista.getTxtCedula().getText();
				if (validarFecha(anno,mes,dia)&&validarCampos()&&validarCedula(cedula)){
					Calendar fecha_nacimiento = Calendar.getInstance();
					fecha_nacimiento.set(anno, mes, dia);
					Liga.umpires.add(new Umpire(vista.getTxtCedula().getText(),
							vista.getTxtNombre().getText(),vista.getTxtApellido().getText(),
							fecha_nacimiento,0));
					JOptionPane.showMessageDialog(new JFrame(), "Registrado Exitosamente","Registro",JOptionPane.INFORMATION_MESSAGE);
					limpiar();
				}
				
				
			}
			
}
		private boolean validarFecha(int anno, int mes, int dia){
			boolean respuesta = true;
			if (anno < 1941 || anno > 1993){
				JOptionPane.showMessageDialog(new JFrame(), "El anno de nacimiento debe estar" +
						" comprendido entre 1941 y 1993","Validar Fecha",JOptionPane.WARNING_MESSAGE);
				respuesta = false;
			}
			if ((mes == 4 || mes == 6 || mes == 9 || mes == 11 ) && dia>30){
				JOptionPane.showMessageDialog(new JFrame(), "El dia de nacimiento debe estar" +
						" comprendido entre 1 y 30","Validar Fecha",JOptionPane.WARNING_MESSAGE);
				respuesta = false;
			}
			if (mes ==2 && dia > 29){
				JOptionPane.showMessageDialog(new JFrame(), "El dia de nacimiento debe estar" +
						" comprendido entre 1 y 29","Validar Fecha",JOptionPane.WARNING_MESSAGE);
				respuesta = false;
			}
		return respuesta;	
		}
	
		private boolean validarCampos(){
			boolean respuesta = true;
			if (vista.getTxtApellido().getText().equalsIgnoreCase("")||
					vista.getTxtNombre().getText().equalsIgnoreCase("") ||
					vista.getTxtCedula().getText().equalsIgnoreCase("")){
				JOptionPane.showMessageDialog(new JFrame(), "Todos los campos deben" +
						" estar LLenos","Validar Campos",JOptionPane.WARNING_MESSAGE);
				
				respuesta = false;
			}
			
			return respuesta;
			
		}
		
	private boolean validarCedula(String cedula){
		boolean respuesta = true;
		
		for (int i =0;i<Liga.umpires.size();i++){
			if (Liga.umpires.get(i).getCedula().equalsIgnoreCase(cedula)){
				JOptionPane.showMessageDialog(new JFrame(), "El Numero de cedula ya fue " +
						" asignado a un arbitro por favor verifique","Validar Cedula",JOptionPane.WARNING_MESSAGE);
				
				respuesta = false;
			}
			
		}// fin del for
		return respuesta;
	}	// fin del metodo
	
	private void limpiar(){
		vista.getTxtApellido().setText("");
		vista.getTxtNombre().setText(""); 
		vista.getTxtCedula().setText("");
		
	}
}
